package org.ch03.hw.myarraylist;

import java.util.ArrayList;
import java.util.List;

/**
 * @author ZJL
 * @date 2025-03-26
 */
public class MainTest {
    public static void main(String[] args) {
//        六、编写程序，使用泛型，创建一个MyArrayList的泛型类，模拟JDK中的ArrayList的实现，要求如下：
//        1)动态扩容 - 原来长度 * 2
//        2)add(): 添加元素
//        3)remove(): 删除元素
//        4)size(): 返回集合元素的实际个数
//        5)set(): 给集合某个下标设置元素
//        6)get(): 获取集合下标对应的元素
//        7)isEmpty()：判断集合是否为空
//
//        提示：
//        1）参考源码，方法参数根据需要自定义！
//
//        2）数组扩容：System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
//        Object src : 源数组
//        int srcPos : 从源数组的起始位置开始
//        Object dest : 目标数组
//        int destPos : 目标数组的开始起始位置
//        int length  : 要copy的数组的长度
//
//        3）Arrays.copyOf()


        // 实例化 MyArrayList 对象
        MyArrayList<String> myList = new MyArrayList<>();
        myList.add("AAA");
        myList.add("BBB");
        myList.add("CCC");
        myList.add("DDD");
        myList.add("EEE");

        System.out.println("删除的元素为："+myList.remove(1));
        System.out.println("覆盖前的数据为："+myList.set(0,"ABC")+"\n覆盖后的数据为:"+myList.get(0));
        System.out.println("数组元素容量为："+myList.size());
        System.out.println("集合是否为空："+myList.isEmpty());
        System.out.println("数据:"+myList);

    }
}
